/*
 * Copyright (c) 2017. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
 * Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan.
 * Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna.
 * Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus.
 * Vestibulum commodo. Ut rhoncus gravida arcu.
 */

package com.mrd.gtimpframe.service;

import com.alibaba.fastjson.JSONObject;
import com.mrd.base.Jqgrid;
import com.mrd.framework.config.web.json.Result;
import com.mrd.gtimpframe.entity.Company;
import com.mrd.gtimpframe.entity.GenProtocol;
import com.mrd.gtimpframe.entity.GenProtocolUnite;

import org.springframework.data.domain.Page;
import org.springframework.web.multipart.MultipartFile;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * Created by dengdc on 2017/7/31.
 */
public interface ProtocolService {
	Result saveOrUpdateProtocolUnite(GenProtocolUnite unite, MultipartFile file);

	/**
	 * 保存协议报价，数据从编辑页面而来
	 * @return
	 */
	Result saveOrUpdateProtocolFromEditPage();

	/**
	 * 保存协议报价
	 * @param genProtocol
	 */
	void saveProtocol(GenProtocol genProtocol);

	/**
	 * 查询报价协议页面的数据
	 * @param jqgrid
	 * @return
	 */
	Page uniteManageViewData(Jqgrid jqgrid);

	Page uniteSupViewData(Jqgrid jqgrid);

	/**
	 * 查询报价协议页面的数据
	 * @param jqgrid
	 * @return
	 */
	Page manageViewData(Jqgrid jqgrid, String uniteId);

	/**
	 * 查询编辑协议报价页面所需要的数据
	 * @param id
	 * @return
	 */
	Map<String, Object> findForEditPage(String id);

	/**
	 * 查询编辑协议报价页面所需要的数据
	 * @param id
	 * @return
	 */
	JSONObject findUniteForEdit(String id);

	/**
	 * 将报价发送到供应商进行确认
	 * @param uniteId
	 *            报价ID
	 */
	Result sendUniteToSupplier(String uniteId);

	/**
	 * 将报价发送到供应商进行确认
	 * @param uniteId
	 *            报价ID
	 */
	Result cancelSendUniteToSupplier(String uniteId);

	/**
	 * 更新报价, 让他们处于正确的状态
	 */
	void updateAllUniteToEctStatus();

	/**
	 * 获取
	 * @return
	 */
	List<Map<String, Object>> getHaveEftProtocolCompany(boolean isExport, boolean isCCI);
}
